package cn.com.bluemoon.daps.model.service;

import cn.com.bluemoon.daps.common.domain.UserInfoHolder;
import cn.com.bluemoon.daps.common.enums.DatabaseType;
import cn.com.bluemoon.daps.model.core.file.report.ImportReport;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * @author Jarod.Kong
 */
public interface DapDataModelImportService {
    /**
     * 导入
     * excel/sql
     * 模型id
     *
     * @param mFile   excel/sql...
     * @param modelId 模型id
     */
    ImportReport fileImport(MultipartFile mFile, String modelId);

    /**
     * 下载模板，根据模型id
     */
    void downloadTemplateByModelId(String modelId, HttpServletResponse response);

    /**
     * 根据数据类型下模板
     *
     * @param response resp
     * @param dbType   db
     */
    void downloadTemplateByDbType(HttpServletResponse response, DatabaseType dbType);

//    -------------------------------new -------------------------------------
    /**
     * 下载模板，根据模型id
     * 目前只支持PG
     */
    void downloadTemplateV2ByModelId(String modelId, HttpServletResponse response);

    /**
     * 根据数据类型下模板
     * 目前只支持PG
     */
    void downloadTemplateV2ByDbType(HttpServletResponse response, DatabaseType dbType);

    /**
     * 新需求导入
     * 目前只支持PG
     */
    boolean fileImportV2(MultipartFile mFile, String modelId, UserInfoHolder.UserInfo userInfo);
}
